package com.Event;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * @author cyt
 * @create 2020-08-01 17:41
 */

@ComponentScan(basePackages = {
        "com.Event"
})
@Configuration
public class Test {
    /**
     * 事件监听机制
     * 1、定义事件
     * 继承 ApplicationContextEvent， 并在此添加事件的消息，重写父类构造器， 以及一些相关方法
     * 2、定义监听者
     * 实现  ApplicationListener<MsgSendEvent>  接口， 传入要监听事件的泛型， 其中  onApplicationEvent 方法在
     * 监听的事件发生后执行
     * 3、事件触发
     * 通过 ApplicationContext 的 publishEvent 方法发送事件
     *
     * @param args
     */
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Test.class);
        MsgSender bean = context.getBean(MsgSender.class);
        bean.send("com.cuiyt.test  mail ...");
    }
}
